/*******************************************************************************
* Имя файла: calcFactorial.cpp
* Дата: 31-03-2024
* Разработчик: Андрей Подлегаев
* Группа: 315
* Факультет: ЦДО ТУСУР
* Лицензия: BSD
* Описание: Решение задач к лабораторной работе №4 (ЦДО ТУСУР)
* *****************************************************************************/

#include "calcFactorial.h"

/* Функция вычисления факториала с помощью итераций */
long double calcFactIterations(const int xNumber)
{
  if (xNumber < 0)
    return 0;

  long double factorial{1};
  for (int i{}; i < xNumber; ++i) {
      factorial = factorial * (i + 1);
    }
  return factorial;
}

/* Функция вычисления факториала с помощью рекурсии */
long double calcFactRecursively(const int xNumber)
{
  if(xNumber < 0)
    return 0;
  if (xNumber == 0)
    return 1;
  else
    return xNumber * calcFactRecursively(xNumber - 1);
}
